package com.Sdebruijn.curriculumvitae.models;

import android.os.Parcelable;

import com.google.gson.annotations.SerializedName;
import com.j256.ormlite.field.DatabaseField;

/**
 * Abstract class for a Person
 * 
 * @author Stefan de Bruijn
 */
public abstract class Person implements Parcelable {

	/**
	 * id for the ORMLite-SQLite database
	 */
	@DatabaseField(id = true)
	@SerializedName("id")
	public int id;

	/**
	 * {@link String} containing the {@link Person}'s full name
	 */
	@DatabaseField
	@SerializedName("name")
	public String name;

	/**
	 * {@link String} containing the {@link Person}'s mobile number inclusive
	 * country code
	 */
	@DatabaseField
	@SerializedName("mobile")
	public String mobile;

	/**
	 * {@link String} containing the {@link Person}'s Email address
	 */
	@DatabaseField
	@SerializedName("email")
	public String email;

	/**
	 * {@link String} containing the {@link Person}'s avatar photo
	 */
	@DatabaseField
	@SerializedName("picture")
	public String picture;

	/**
	 * {@link String} containing the {@link Person}'s {@link OnlinePerson},
	 * connecting his online activity to his real life info
	 */
	@DatabaseField(foreign = true, columnName = "online_person_id", foreignAutoCreate = true)
	@SerializedName("online_person")
	public OnlinePerson online_person;

}
